package mpbe.estructura;

/*
 * Este codigo es software libre y se encuentra licenciado 
 * bajo los términos de la Licencia Pública General de GNU versión 3 
 * según se encuentra publicada por la Free Software Foundation.
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Autor: Martin Pablo Bellanca <martin.bellanca@gmail.com>
 * web: http://mpbe.blogspot.com/
 */

import org.json.simple.JSONObject;

/**
 * @author mpbe
 *
 */
public class Material {
	public String Tipo;
	public String Designacion;
	public double Coef_Poison;
	public double Coef_Dilatacion; //1/c
	public double Peso_Unitario; //KN/cm3
	public double Bf; //Tension de fluencia o rotura (material ductil y fragil)
	public double Ese; //Deformacion de Fluencia (ductil) VER FRAGIL %o
	public double El; //Deformacion limite, 3,5 Hormigon y 5 Acero
	public double Es; //Modulo de Elasticidad
	public double G; // Modulo de corte
	public double Cte_Torsion; //Hormigon armado
	
	public Material() {
		Tipo = "";
		Designacion = "";
		Coef_Poison = 0;
		Coef_Dilatacion = 0;
		Peso_Unitario = 0;
		Bf = 0;
		Ese = 0;
		El = 0;
		Es = 0;
		//G=0;
		Cte_Torsion = 0;
	}
	
	public Material(String tipo, String designacion,
			double coef_poison, double coef_dilatacion, double peso_unitario,
			double bs, double br, double ese, double el,double es, double cte_torsion) {
		//super();
		Tipo = tipo.toString();
		Designacion = designacion.toString();
		Coef_Poison = coef_poison;
		Coef_Dilatacion = coef_dilatacion;
		Peso_Unitario = peso_unitario;
		Bf = br;
		Ese = ese;
		El = el;
		Es = es;
		//G=g;
		Cte_Torsion = cte_torsion;
	}	
	
	public void copyInto(Material material)
	{
		material.Tipo = Tipo;
		material.Designacion =Designacion;
		material.Coef_Poison = Coef_Poison;
		material.Coef_Dilatacion = Coef_Dilatacion;
		material.Peso_Unitario = Coef_Dilatacion;
		material.Bf = Bf;
		material.Ese = Ese;
		material.Es = Es;
		material.El = El;
		material.G = G;
		material.Cte_Torsion = Cte_Torsion;
	}
	//*****************************************************
	// Funciones JSON
	//*****************************************************
	public void put_JSON(JSONObject jo){
		Tipo = (String) jo.get("Tipo");
		Designacion = (String) jo.get("Designacion");
		Coef_Poison = (Double) jo.get("Coef_Poison");
		Coef_Dilatacion = (Double) jo.get("Coef_Dilatacion"); 
		Peso_Unitario = (Double) jo.get("Peso_Unitario");  
		Bf = (Double) jo.get("Bf");
		Ese = (Double) jo.get("Ese"); 
		El = (Double) jo.get("El");
		Es = (Double) jo.get("Es");
		Cte_Torsion = (Double) jo.get("Cte_Torsion");
	}
	public JSONObject get_JSONObject() {
		JSONObject jo = new JSONObject();
		jo.put("Tipo", Tipo);
		jo.put("Designacion", Designacion);
		jo.put("Coef_Poison", Coef_Poison);
		jo.put("Coef_Dilatacion", Coef_Dilatacion);
		jo.put("Peso_Unitario", Peso_Unitario); 
		jo.put("Bf", Bf);
		jo.put("Ese", Ese);
		jo.put("El", El);
		jo.put("Es", Es);
		jo.put("Cte_Torsion", Cte_Torsion);
		return jo;
	}
	public String get_JSONString(int tab) {
		String res = tabs(tab)+"{\n";
		res += tabs(tab+1)+"\"Tipo\":\""+Tipo+"\",";
		res += "\"Designacion\":\""+Designacion+"\",\n";
		res += tabs(tab+1)+"\"Coef_Poison\":"+Coef_Poison+", ";
		res += "\"Coef_Dilatacion\":"+Coef_Dilatacion+", ";
		res += "\"Peso_Unitario\":"+Peso_Unitario+",\n";
		res += "\"Bf\":"+Bf+", ";
		res += "\"Ese\":"+Ese+", ";
		res += "\"El\":"+El+",";
		res += "\"Es\":"+Es+",";
		res += "\"Cte_Torsion\":"+Cte_Torsion+"\n"+tabs(tab)+"}";
		return res;
	}
	private String tabs(int can) {
		String str = new String();
		for (int ii=0; ii<can; ii++) str += "   ";
		return str;
	}
	
}
